package cn.com.darly.videoandroidpm.common.retrofit;

import com.google.gson.JsonObject;

import okhttp3.RequestBody;
import retrofit2.http.Body;
import retrofit2.http.POST;
import rx.Observable;

/** 请求接口
 * @author Darly/张宇辉/2017/12/4 9:04
 * @version 1.0/com.darly.dubbo.retrofit
 */
public interface HttpInterface  {
    /**
     * @TODO:用户登录POST接口，传递参数为<b>route</b>
     */
    @POST("login")
    Observable<JsonObject> postlogin(@Body RequestBody route);

    /**
     * @TODO:註冊驗證接口
     */
    @POST("register")
    Observable<JsonObject> postRegister(@Body RequestBody route);

    /**
     * @TODO:註冊接口
     */
    @POST("registernext")
    Observable<JsonObject> postRegisternext(@Body RequestBody route);

    /**
     * @TODO:验证用户名是否使用
     */
    @POST("checkuser")
    Observable<JsonObject> postCheckuser(@Body RequestBody route);

    /**
     * @TODO:验证用户名是否使用
     */
    @POST("index/amuse")
    Observable<JsonObject> postIndexAmuse(@Body RequestBody route);


    /**
     * @TODO:搜索好友列表
     */
    @POST("user/searchuser")
    Observable<JsonObject>  postSearchFriend(@Body RequestBody body);
    /**
     * @TODO:获取用户好友接口
     */
    @POST("user/friendship")
    Observable<JsonObject> postFriend();
    /**
     * @TODO:新增好友接口
     */
    @POST("user/applyfriend")
    Observable<JsonObject> postAddFriend(@Body RequestBody route);
    /**
     * @TODO:添加我为好友的用户列表
     */
    @POST("user/applyer")
    Observable<JsonObject>  postApplyUser();
    /**
     * @TODO:同意添加好友
     */
    @POST("user/viaapply")
    Observable<JsonObject>  postViaapply(@Body RequestBody route);
    /**
     * @TODO:用户发布话题
     */
    @POST("user/publishamuse")
    Observable<JsonObject>  postPublishamuse(@Body RequestBody route);
    /**
     * @TODO:查询本用户已经发布过的所有话题
     */
    @POST("user/publishedamuse")
    Observable<JsonObject>  postPublishedamuse();

    /**
     * @TODO:用户聊天信息上传
     */
    @POST("user/chat/sendchatmsg")
    Observable<JsonObject>  postSendChatMsg(@Body RequestBody route);

    /**
     * @TODO:历史用户聊天信息
     */
    @POST("user/chat/oldchatmsg")
    Observable<JsonObject>  postOldChatMsg(@Body RequestBody route);


    /**
     * @TODO:用户发起视频通话请求
     */
    @POST("user/video/call")
    Observable<JsonObject>  postCall(@Body RequestBody route);

    /**
     * @TODO:用户发起视频通话后直接关闭请求
     */
    @POST("user/video/callconsole")
    Observable<JsonObject>  postStop(@Body RequestBody route);
    /**
     * @TODO:用户接受视频通话请求
     */
    @POST("user/video/accept")
    Observable<JsonObject>  postAccept(@Body RequestBody route);
    /**
     * @TODO:用户拒絕视频通话请求
     */
    @POST("user/video/refuse")
    Observable<JsonObject>  postRefuse(@Body RequestBody route);

}
